我修理了最後打包遇到的問題,雖是這樣說老實說我沒有主動修掉甚麼問題,我現在的專案中除了main.py主程式以外,有個charater.py是有在主程式用到的,然後是assets資料夾放了各種有用到的素材檔案,其中一個是icon,然後上次我把icon圖片從png轉成ico檔,然後用安裝好PyInstaller後用這指令試著打包了:python -m PyInstaller --onefile --windowed --add-data "assets;assets" --icon "assets/icon.ico" main.py,指定了要包入assets和指定icon是icon.ico,這次打包是失敗的,打開的視窗的錯誤是沒包到charater.py,但說應該會有用到就被PyInstaller包進去,所以再試了打包,出現了沒有png檔的問題,再試一次就成功了,問我的chatGPT說如果指令沒錯應該不會一下失敗一下成功的,所以可能是快取影響了結果,或是我做了甚麼操作我沒注意到的影響了結果,再不然就是它說錯了,總之是成功了。
接下來我想稍微整理一下我這個嘗試最後做成了什麼樣子
我的結構還蠻簡單的,就是整個的資料夾,然後裡面是這樣:
我的主程式分成兩個部分,迴圈前的準備和主迴圈
迴圈前準備就是建立好各種要用的變數、方法,這裡比較有趣的我覺得是做了角色物件的陣列,有兩個陣列,一個是這場景的角色陣列,放了這個場景的幾乎所有角色物件,這樣要做各種對所有角色的判斷就能做到,比如說畫出所有角色,判斷誰被點擊之類的,我寫的工具就是有關這個的,但是是另一個叫地圖矩形陣列,就是一些畫在地圖上的矩形用來當牆壁地板用的,透過工具畫場景,然後得到矩形資訊後就能,就能把資訊複製過去,創出所有的矩形,然後用在碰撞上,後來當我做到多個場景時,就變成有一個二維陣列放了所有場景的場景的陣列,在切換時就把要的陣列放到處理的陣列的位置。
這裡就正式跑遊戲了,我寫一寫迴圈大概分成三個部分:
我差不多就是這樣做我要的效果的。
這裡是想來寫是怎麼做出世界不是跟視窗綁在一起,而是能像是鏡頭一樣,鏡頭外面也有空間的,最主要要做的就是要建座標變數。